This invention relates generally to disc players and, more specifically, to a digital video disc decoder.
Digital Video Disc (DVD) or, as it is sometimes called, Digital Versatile Disc, is a new medium for the distribution of from 4.7 to 17 billion bytes of digital data on a 120-mm (4.75 inch) disc. This huge volume of data (today""s CD can store only 680 million bytes of data) can be used to store up to nine hours of studio quality video and multi-channel surround-sound audio, highly interactive multimedia computer programs, 30 hours of CD-quality audio, or anything else that can be represented as digital data.
A DVD looks exactly like today""s CD: it is a silvery platter, 4.75 inches in diameter, with a hole in the center, except that information can be stored on both sides. Like a CD, data is recorded on the disc in a spiral trail of tiny pits, and the discs are read using a laser beam. A DVD is made up of a reflective aluminum foil encased in clear plastic. The pits are formed in the foil by stamping it with a glass master. In the case of a single-sided DVD, the stamped disc is backed by a dummy, which may contain graphics advertising the contents of the disc. For a double-sided disc, two halves, each with their foil full of data, are bonded back to back. The DVD""s larger capacity is achieved by making the pits smaller and the spiral tighter, and by recording the data in as many as four layers, two on each side of the disc.
A DVD player includes a disc reader mechanism for retrieving data from a DVD disc, an audio/video decoder for decoding the retrieved data and transforming the audio and video data into a desired output format and a controller for processing user commands and controlling the operation of the player. Typically, user input for controlling the operation of the player is provided from either a remote control or front panel of the player. In turn, the controller translates the user input into commands for execution by the various components of the DVD player. The controller may issue a plurality of commands based on a single user input.
In general, in one aspect, the invention provides a method of executing commands provided by a host to a decoder in a disc player, the method including the steps of receiving a first command from the host. Thereafter, the decoder determining whether the first command is a high priority command. If the first command is a high priority command, then the first command is immediately executed and a pointer to a location in a memory at which status information relating to the first command resides is returned to the host. The decoder is disabled from receiving any more high priority commands until the execution of the first command is complete.
If the first command is not a high priority command, then the first command is stored in a command and status buffer in the memory. The decoder allocates space in the command and status buffer to store a command status word whose value is representative of a current status of processing of the first command by the decoder. The decoder determines if the command and status buffer is full, and if not, returns to the host a status address associated with the command status word. If the command and status buffer is full, the decoder disables the receipt of any new commands until the command and status buffer has enough room to store at least one new command.
Preferred embodiments of the invention include the following features. The step of receiving a first command includes receiving an interrupt from the host and upon receiving the interrupt the decoder immediately determines whether the command is a high priority command. The command and status buffer is sized to store at least two commands. The step of receiving the first command includes loading the first command into a command buffer. The step of returning to the host the status address includes writing the status address to the command buffer, thereby enabling the host to issue a new command. The step of disabling the decoder from receiving more commands includes a step of delaying the return of the status address to the host until the command and status buffer has room to store a new command.
In another aspect, the invention provides a method of executing commands by a decoder in a disc player, the commands transferred by a host through a host interface to the decoder, the decoder including a memory for storing selected ones of the commands and status information associated therewith, the method including the step of receiving a plurality of commands and storing selected ones of the commands in a command and status buffer. The decoder allocates space in the command and status buffer to store a command status word representative of an execution status of each command stored therein. A pointer is returned to the host representing the location in memory for the command status word for each command prior to accepting a new command from the host. The decoder monitors the execution status of each command and updates the command status word for each command. Each command is executed from the command and status buffer according to the order in which it is received.
Preferred embodiments of the invention include the following features. The step of storing includes storing only low priority commands in the command and status buffer. The decoder immediately executes high priority commands upon receipt. The receiving step includes loading each command from the host into a command buffer. The step of returning a pointer to the host includes writing the pointer to the command buffer wherein the command buffer is readable by the host.
In another aspect, the invention provides an audio and video decoder for decoding audio and video streams, the audio and video decoder responsive to commands received from a host to control audio and video decoding processes, the audio and video decoder including a host interface and a command processor. The command processor is for storing in a command buffer in a memory associated with the audio and video decoder each command as it is received from a host through the host interface. In additon the command processor transfers selected ones of the commands received at the command buffer into a command and status buffer in the memory which is sized to store more than one command and allocates space in the command and status buffer to store a command status word representative of the execution status of each command stored therein. Finally, the command processor returns a pointer to the host representing a location in memory for the command status word for each command before accepting a new command from the host and monitors the execution status for each command and updates the command status word for each command. The command processor executes each command from the command and status buffer according to the order in which it is received.
In another aspect, the invention provides an audio and video decoder for decoding audio, video and sub-picture streams in a disc player. The audio and video decoder has associated therewith a memory for storing commands and status information for each command. The audio and video decoder is responsive to commands received from a host to control audio and video decoding processes. The audio and video decoder includes a host interface and a command processor. The command processor includes a transfer mechanism for transferring commands received at a command buffer in the memory to a command FIFO in the memory and a status monitor for tracking an execution status of each command stored in the command FIFO and for updating a status word which is stored along with each command in the command FIFO. The command processor returns a pointer to the host for a unique address in memory for the status word for each command stored in the command FIFO.
Preferred embodiments of the invention include the following features. The audio and video decoder includes a navigational data processor for processing navigational packs received as an input from a digital signal processor. The navigational processor stores the pack in an associated memory and generates an interrupt to the host upon receipt of a pack. The audio and video decoder further includes a dump data module for processing dump data commands received from the host and initiating collection of data from a digital signal processor without requiring host intervention. The dump data module generates an interrupt to the host upon completion of collection of data from the digital signal processor.
The audio and video decoder further includes a highlight module and a video display processor. The highlight module processes highlight commands received as an input from the host, identifying a portion of a sub-picture stream to highlight, and transferring a color selection to the video display processor for combining with a decoded video stream. The video display processor substitutes the color selection for a color originally designated for the portion of the sub-picture to be highlighted resulting in the display of the color selection for the portion of the sub-picture. The color selection is selected from the group of a selection color and an activation color. The video display processor overlays the color selection over a color originally designated for the portion of the sub-picture to be highlighted.
The audio and video decoder further includes a select stream module for processing select stream commands received as an input from the host. Each select stream command indicates a new stream of a predetermined type. The select stream module seamlessly shuts down the decoding of a stream having a same type as the new stream, reconfigures the decoders and processors within the audio and video decoder based on the new stream type and starts decoding of the new stream.
The audio and video decoder further including a memory interface for reading and writing commands and configuration data to and from the memory. The audio and video decoder is configurable based on parameters stored in the memory which are accessed through the memory interface. The host controls the configuration of the audio and video decoder by providing configuration parameters to the audio and video decoder which in turn stores them in the memory.
In another aspect, the invention provides an audio and video decoder for decoding audio, video and sub-picture streams in a disc player. The audio and video decoder has associated therewith a memory for storing commands and status information for each command. The audio and video decoder is responsive to commands received from a host to control audio and video decoding processes. The audio and video decoder includes a memory interface and a host interface. The host interface includes a host address bus, a host data bus, a plurality of host interface registers for storing address and data information received from the host, and host interface logic for controlling reading and writing operations to and from the host, the audio and video decoder and the memory. One of the host interface registers includes a pointer for designating the target and source of host write and read operations, respectively.
One advantage of the invention is that asynchronous communications between the host and the decoder in the command process may be realized. The host may issue commands and then perform other operations as required, yet may still track status of each command it issues to the decoder.
Another advantage of the invention is that a simple host interface to the decoder is provided thereby allow for easy command and configuration of the decoder.
Another advantage of the present invention is that the host may collect data via the decoder to DSP interface without requiring the host to oversee the transacation.
Another advantage of the present invention is that the host may easily retrieve navigational packs from the data input to the decoder and thereby simplifying host transactions with the disc player DSP.
Another advantage of the invention is the decoder includes simplified host and memory interfaces which allow for the easy configuration of the edecoder as it transitions from state to state in the decoding process.
Another advantage of the invention is the decoder is configurable via configuration parameters which are stored in a memory attached to the decoder. The decoder provides a easy interface to the host for writing configuration data to the memory. The memory is mapped to provide ready configuration of the decoder in its various operating states.
Other advantages and features will be apparent from the following description and claims.